//==========================================================================
// Copyright (c) 2000-2008,  Elastos, Inc.  All Rights Reserved.
//==========================================================================
/******************************************************************************
**
**  COPYRIGHT (C) 2001, 2002 Intel Corporation.
**
**  This software as well as the software described in it is furnished under
**  license and may only be used or copied in accordance with the terms of the
**  license. The information in this file is furnished for informational use
**  only, is subject to change without notice, and should not be construed as
**  a commitment by Intel Corporation. Intel Corporation assumes no
**  responsibility or liability for any errors or inaccuracies that may appear
**  in this document or any software that may be provided in association with
**  this document. 
**  Except as permitted by such license, no part of this document may be 
**  reproduced, stored in a retrieval system, or transmitted in any form or by
**  any means without the express written consent of Intel Corporation. 
**
**  FILENAME:       xllp_touch.h
**
******************************************************************************/

#ifndef __XLLP_TOUCH_H__
#define __XLLP_TOUCH_H__

#include "xllp_ac97.h"
#include "xllp_common.h"
#include "xllp_ost.h"

#define XLLP_TOUCH_CODEC_ID     XLLP_AC97_CODEC_PRIMARY

typedef enum
{
    XLLP_AC97_TOUCH_X,
    XLLP_AC97_TOUCH_Y,
    XLLP_AC97_BATTERY
}XLLP_AC97_ADC_TYPE;

XLLP_BOOL_T XllpAc97SetupTouch(P_XLLP_AC97_T pAC97Reg, P_XLLP_OST_T pOstRegs, XLLP_UINT16_T rev);
XLLP_BOOL_T XllpAc97DisablePenDownInterrupt(P_XLLP_AC97_T pAC97Reg, P_XLLP_OST_T pOstRegs);
XLLP_BOOL_T XllpAc97EnablePenDownInterrupt(P_XLLP_AC97_T pAC97Reg, P_XLLP_OST_T pOstRegs);
XLLP_BOOL_T XllpAc97GetPenIntStatus(P_XLLP_AC97_T pAC97Reg, P_XLLP_OST_T pOstRegs, XLLP_BOOL_T *pIntStatus);
XLLP_BOOL_T XllpAc97ClearPenIntStatus(P_XLLP_AC97_T pAC97Reg, P_XLLP_OST_T pOstRegs);
XLLP_BOOL_T XllpAc97IsPenUp(P_XLLP_AC97_T pAC97Reg, P_XLLP_OST_T pOstRegs, XLLP_BOOL_T *pPenUp);
XLLP_BOOL_T XllpAc97EnableADC(P_XLLP_AC97_T pAC97Reg, P_XLLP_OST_T pOstRegs);
XLLP_BOOL_T XllpAc97DisableADC(P_XLLP_AC97_T pAC97Reg, P_XLLP_OST_T pOstRegs);
XLLP_BOOL_T XllpAc97SampleADC(P_XLLP_AC97_T pAC97Reg, P_XLLP_OST_T pOstRegs, XLLP_AC97_ADC_TYPE type,
            P_XLLP_UINT16_T pValue, XLLP_INT32_T timeOutMs);
XLLP_BOOL_T XllpAc97GetPenPosition(P_XLLP_AC97_T pAC97Reg, P_XLLP_OST_T pOstRegs, 
            P_XLLP_UINT16_T pValueX, P_XLLP_UINT16_T pValueY, XLLP_INT32_T timeOutMs, XLLP_UINT16_T rev);
#endif